home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)TA / (A)TAS.ADF / clock297 / clkdj297.doc < prev    next >
Text File  |  1988-09-05  |  11KB  |  408 lines

  1.  
  2. Clockdj2  - Assembly language clock, mouse, screen and window program.
  3. Version   - 2.97
  4. Copyright - Copyright (c) by David Jenkins, 5 Sept. 1988.
  5.             I can be reached at Bloom Beacon 416-297-5607.
  6.                                     and M31  416-439-0493
  7.  
  8.      This program may be distributed freely, but please keep the 
  9. documentation and source with the load module.
  10.  
  11. V2.97 Change
  12. ~~~~~~~~~~~~
  13.     This version will allow the user to select a window and remove it
  14. from the screen while leaving the task that started it unaffected. 
  15.  
  16.     To do this, point at the window you want to remove, hold the left
  17. Amiga key down and press the left mouse button; the window should disappear.
  18. To bring the window back hold the left Amiga key and press the right mouse
  19. button.
  20.  
  21.     Up to 60 windows can be hidden in this way. When retrieving windows
  22. the last one removed is brought back first. A separate list of hidden windows
  23. is maintained for each screen, so only the windows for the active screen are
  24. retrieved.
  25.  
  26.     I put this feature in because my workbench screen is often cluttered
  27. with small windows opened by tasks like VirusX. These windows serve no useful
  28. purpose and I decided I would like a means of removing them.
  29.  
  30.     Restrictions: 
  31.  
  32. 1. CLI windows cannot be removed. Doing so confuses things and ends in a guru,
  33.    so the CLI windows are ignored when selecting a window to hide.
  34.  
  35.  
  36. 2. Some programs look at their window size; FileInjector does this. If the
  37.    small FileInjector window is hidden and the hot key sequence is used, the
  38.    resulting window is smaller than it should be. The solution is one of: don't
  39.    hide this type of window; retrieve the window before the hot key; retrieve
  40.    the window after the hot key. The last option would require a window refresh
  41.    too (move the window).
  42.     
  43.  
  44.     
  45.  
  46. V2.96 Change
  47. ~~~~~~~~~~~~
  48.  
  49.     There was a bug which prevented the second startup parameter
  50. (the NewCLI specification) from working if it was less than a certain length.
  51. This should now be fixed.
  52.  
  53.  
  54. V2.95 changes
  55. ~~~~~~~~~~~~~
  56.  
  57.     There is one simple change in this release: a menu item to
  58. select whether the clock pops to the front or not. If it checked the
  59. clock will pop to the front.
  60.  
  61.     I am not distributing source with this release. If anyone really
  62. wants it, let me know.
  63.  
  64.  
  65. V2.94 Changes
  66. ~~~~~~~~~~~~~
  67.  
  68. 1. I have re-vamped the menu routines so that multiple checked items
  69.    can be selected in one pass by clicking the left button.
  70.  
  71. 2. The screen cycle will not be triggered in the middle of an extended
  72.    menu selection.
  73.  
  74. 3. Picking up an icon and hitting a key would freeze the machine if 
  75.    key activate was on. This is fixed.
  76.  
  77. 4. The pointer blanking did not work correctly when a program opened
  78.    a new screen while the pointer was blank. It should now.
  79.  
  80.  
  81. V2.91 Changes
  82. ~~~~~~~~~~~~~
  83.  
  84. 1. The screen blanking routine has been changed: when it goes blank
  85.    it now turns black instead of becoming the background colour.
  86.  
  87. 2. Pointer blanking has been changed to avoid the occasional vertical
  88.    sprite bar.
  89.  
  90. 3. The 'clockdj.config' file is now prefixed by sys: not df0:. This
  91.    permits it to be stored on a hard disk. Also, if sys: is assigned
  92.    to another device (vd0: for example, after booting), the file will
  93.    be read from the assigned device.
  94.  
  95. 4. The 'NewCLI' command can be specified as a startup parameter. It is a 
  96.    positional parameter and must appear after the 'r' parameter. For example:
  97.  
  98.    runback clockdj n NewShell <nil: >nil: "newcon:0/0/640/150/ NewShell "
  99.  
  100.    The 'n' means that the mouse buttons are to be used in their default
  101.    sequence.
  102.  
  103.    Notice that in this example both input and output have bee re-directed
  104.    to nil:. This is necessary if the clock is started using runback
  105.  
  106.    The specified command will be used by both the menu and Left-Amiga-ESC
  107.    sequence.
  108.  
  109. 5. Left-Amiga-m will shuffle screens if "Screen Cycle" is selected.
  110.  
  111.  
  112.  
  113. V2.90 Changes
  114. ~~~~~~~~~~~~~
  115.  
  116.     There a few more new features in this version and a couple 
  117. of bug fixes:
  118.  
  119.  
  120. 1. The number of clicks needed for window to front and window to back
  121.    can be independently set.
  122.  
  123. 2. Left Amiga-ESC does a NewCLI.
  124.  
  125. 3. An activate window for the window under the pointer  is performed
  126.    when a key is depressed.
  127.  
  128.  
  129.  
  130.  
  131. V2.8 Changes
  132. ~~~~~~~~~~~~
  133.  
  134.  
  135.     The new features in this version of clockdj are:
  136.  
  137.  
  138. 1. Screen blanking after a pre-defined period of inactivity.
  139.  
  140. 2. Pointer blanking after a pre-defined period of inactivity.
  141.  
  142. 3. Mouse accelerator.
  143.  
  144. 4. Sun mouse.
  145.  
  146. 5. Click the window to front with the left mouse button.
  147.  
  148. 6. Click the window to back by pressing the left mouse button followed by the
  149.    right mouse button, with the left button still down.
  150.  
  151. 7. Cycling through screens by pressing the right mouse button followed by the
  152.    left mouse button with the right button still down.
  153.  
  154.  
  155.     The button sequences for 6. and 7. can be reversed by specifying the
  156. parameter "r" when starting the clock: eg:
  157. runback -s2000 clockdj r
  158.  
  159.  
  160.     All the above can be selected my menus and saved in the configuration
  161. file.
  162.  
  163.     As far as I am aware I have avoided any lockup problems when picking up
  164. icons and cycling windows or screens.
  165.  
  166.  
  167.  
  168.  
  169.  
  170. V2.4 Changes
  171. ~~~~~~~~~~~~
  172.  
  173.    Two bug fixes:
  174.  
  175.  
  176. 1. When attempting to save to a write protected disk which did
  177.    not have a clockdj.config file a guru would occur - probably on
  178.    quitting.
  179.  
  180. 2. A menu selection could be made from the credit message; this
  181.    caused the save record to be written.
  182.  
  183.  
  184. V 2.3 Change
  185. ~~~~~~~~~~~~
  186.  
  187.    There was a bug when changing from the Chip/Fast display to
  188. Total memory and vice versa. This has been fixed.
  189.    
  190.  
  191. V 2.2 Changes
  192. ~~~~~~~~~~~~~
  193.  
  194.    There appears to be a bug in WindowToFront which can cause 
  195. system lockups when selecting an icon. I have avoided this call
  196. in V 2.2 and replaced it with UpFrontLayer which avoids the
  197. problem. 
  198.  
  199.  
  200. V 2.0 Description
  201. ~~~~~~~~~~~~~~~~~
  202.  
  203.  
  204.    Version 2 has menus to set all parameters (these had to be
  205. zapped on the last version). It also gives you the option of displaying
  206. chip and fast ram separately, and the  of saving the current
  207. settings in a file so that next time the program starts it will use
  208. the new settings as defaults.
  209.  
  210.  
  211.  
  212.      This clock program is based on  one  by  Darrel Schneider; I
  213. have made the modifications needed  to turn it into a clock which
  214. I find  useful  for  my  personal  use.  Since  it  is written in
  215. assembler it has the major virtues of being small and efficient.
  216.  
  217.     The display is a  small  borderless  window  which  shows the
  218. total memory left in the system  (chip  and fast) and the time in
  219. 12 hour format. The  window  pops  to  the front of the workbench
  220. screen once every 2 minutes. The memory display shows about
  221. 40-60k more available memory than  other  popular clock programs such as
  222. RSLclock. I have verified that this program is giving an accurate
  223. display, however. 
  224.  
  225.  
  226.     The best way to start the program is to use Runback with a 2k
  227. stack parameter: eg., 'runback -s2000 clockdj'. The clock itself
  228. only needs a 2k stack, but be careful if you start a new CLI from the
  229. clock menu; the new CLI will also have a 2k stack, so you should reset
  230. the stack to a higher value in the new window.
  231.  
  232.  
  233.                         Start-up parameters
  234.                         ~~~~~~~~~~~~~~~~~~~
  235.  
  236. 1. "r" specified as the first parameter will reverse the action of the
  237.     mouse buttons for the features that require both to be depressed.
  238.     The default is "n".
  239.  
  240. 2. The 'NewCLI' command can be specified as a startup parameter. It is a 
  241.    positional parameter and must appear after the 'r' or 'n' parameter. 
  242.    For example:
  243.  
  244.    runback clockdj n NewShell <nil: >nil: "newcon:0/0/640/150/ NewShell "
  245.  
  246.    The 'n' means that the mouse buttons are to be used in their default
  247.    sequence.
  248.  
  249.    Notice that in this example both input and output have bee re-directed
  250.    to nil:. This is necessary if the clock is started using runback
  251.  
  252.    The specified command will be used by both the menu and Left-Amiga-ESC
  253.    sequence.
  254.  
  255.  
  256.  
  257.             Menu options
  258.             ============
  259.  
  260. NewCLI
  261. ------
  262.  
  263. Gives you a new CLI window at the bottom of the screen.
  264.  
  265.  
  266.  
  267. Chip/Fast
  268. ---------
  269.  
  270. This option gives chip and fast memory displays separately. When selected
  271. the menu toggles to 'Total Memory' to enable you to get back to a total
  272. memory display.
  273.  
  274.  
  275.  
  276. Colour
  277. -----
  278.  
  279. Allows you to select the colour of the clock display.
  280.  
  281.  
  282.  
  283. Priority
  284. --------
  285.                      
  286. The default priority of the clock is 2 which seems to work OK in most
  287. circumstances. Setting it to 0 makes it the same priority as other 
  288. tasks  started  from CLI. Making it negative gives it a lower priority
  289. than other CLI tasks. This option gives you a choice of running the clock
  290. from -3 to +4. I found the negative values useful while running a Basic
  291. drawing program: anything above -1 made the drawing process
  292. jerky.
  293.  
  294.  
  295.  
  296. Refresh
  297. -------
  298.  
  299. This is the maximum rate at which the program will update the display.
  300. The default is 5 times per second and the options allow from 10 times
  301. to once per second. I  only  do an PrintIText if something has changed,
  302. so even 10 times per second does  not  use much CPU - you can
  303. use pm to see how much.  
  304.  
  305.  
  306. Blank Screen
  307. ------------
  308.  
  309. The screen will blank after the specified time (in minutes) if there is no
  310. keyboard or mouse activity.
  311.  
  312.  
  313. Blank Pointer
  314. -------------
  315.  
  316. The mouse pointer will blank after the specified time (in seconds) if there is
  317. no mouse activity.
  318.  
  319.  
  320.  
  321. Mouse Speed
  322. -----------
  323.  
  324. Accelerates the mouse pointer. 1 is no acceleration.
  325.  
  326.  
  327.  
  328. Click to front
  329. --------------
  330.  
  331. Clicking the left mouse button in a window the secified number of
  332. times will bring it to the front.
  333.  
  334.  
  335. Click to back
  336. -------------
  337.  
  338. Click the window to back by pressing the left mouse button followed by the
  339. right mouse button the specified number of times.
  340.  
  341.  
  342. Note that this sequence can be reversed by specifying "r" as a start-up
  343. parameter
  344.  
  345.  
  346. Sun Mouse
  347. ---------
  348.  
  349. Activates the window the pointer is above without having to click the left
  350. mouse button.
  351.  
  352.  
  353.  
  354. Screen Cycle
  355. ------------
  356.  
  357.  
  358. Cycling through screens by pressing the right mouse button followed by
  359. the left mouse button with the right button still down.
  360.  
  361. Note that this sequence can be reversed by specifying "r" as a
  362. start-up parameter
  363.  
  364. The screen cycle can also be triggered by hitting Left-Amiga-m.
  365.  
  366.  
  367. Key Activate
  368. ------------          
  369.  
  370. If this feature is used, the window under the pointer will be activated
  371. when a key is depressed.
  372.  
  373. Pop to Front
  374. ------------
  375.  
  376. Selecting this item causes the clock to pop to the front of the 
  377. workbench screen once per minute.
  378.  
  379. Save
  380. ----
  381.  
  382. If you select 'Save', all the current settings, including the window
  383. position, will be written to a file called 'clockdj.config' in the 
  384. root directory of sys:. You should be careful to ensure that sys: is
  385. assigned to the correct disk so that the file can be read when the clock
  386. is next started.
  387.  
  388.  
  389. The next time clockdj starts it will attempt to read this file and set
  390. up the clock and associated parameters exactly as they were when you 
  391. selected 'Save'.
  392.  
  393. You should select this option when you are happy with the way the clock
  394. looks, and then make sure you have the disk with the clockdj program 
  395. on it assigned to sys:. 
  396.  
  397.  
  398.  
  399. Quit
  400. ----
  401.  
  402. Removes the clock.
  403.  
  404.  
  405.  
  406.                          David Jenkins.
  407.  
  408.